perm filename DECOP.LSP[BNF,JRA] blob sn#005917 filedate 1972-10-25 generic text, type T, neo UTF8

(DEFPROP <INPUT> 
 (LAMBDA NIL
  (NLRR (QUOTE INPUT)
	(FUNCTION
	 (LAMBDA NIL
	  (COND ((AND (<DECOP>) (CH :) (<OPLIST>)) (CONS (STK 2) (STK 0)))
		((AND (<ID>) (CH :)) (STK 1))
		((AND (<S>)) (STK 0))
		(*NIL*)))))) 
EXPR)

(DEFPROP >INPUT< 
 (LAMBDA(%N)
  (OUTRUL %N
	  (FUNCTION
	   (LAMBDA NIL
	    (COND ((AND (MATCH (QUOTE (* . *))) (>DECOP< 1) (>OPLIST< 0)) (LIST (STK1) (QUOTE (:CH :)) (STK0)))
		  ((>S< 1) (STK1))
		  ((>ID< 1) (LIST (STK1) (QUOTE (:CH :))))))))) 
EXPR)

(DEFPROP <OPLIST> 
 (LAMBDA NIL (NLRR (QUOTE OPLIST) (FUNCTION (LAMBDA NIL (COND ((AND (<OPL>) (CH ;)) (STK 1)) (*NIL*)))))) 
EXPR)

(DEFPROP >OPLIST< 
 (LAMBDA (%N) (OUTRUL %N (FUNCTION (LAMBDA NIL (COND ((>OPL< 1) (LIST (STK1) (QUOTE (:CH ;))))))))) 
EXPR)

(DEFPROP <OPL> 
 (LAMBDA NIL
  (NLRR (QUOTE OPL)
	(FUNCTION
	 (LAMBDA NIL
	  (COND ((AND (<OP>) (CH /,) (<OPL>)) (CONS (STK 2) (STK 0)))
		((AND (<OP>)) (CONS (STK 0) NIL))
		(*NIL*)))))) 
EXPR)

(DEFPROP >OPL< 
 (LAMBDA(%N)
  (OUTRUL %N
	  (FUNCTION
	   (LAMBDA NIL
	    (COND ((AND (MATCH (QUOTE (*))) (>OP< 0)) (STK0))
		  ((AND (MATCH (QUOTE (* . *))) (>OP< 1) (>OPL< 0)) (LIST (STK1) (QUOTE (:CH /,)) (STK0)))))))) 
EXPR)